1. Field of the Invention
This invention relates to the bus master function provided by peripheral adapter cards for personal computers. More particularly, it is related to providing the direct memory access (DMA) capabilities necessary to allow bus master function in situations where the host system bus of a personal computer does not support DMA data transfers.
2. Definition of the Problem
With increased use of personal computers in every facet of business and personal life has come the demand for ever-increasing capabilities of peripheral adapter cards that plug those personal computers. One important way that adapter cards are given increased performance and function is to provide cards with bus master capability. An adapter card with bus master capability plugs into the main system bus of a personal computer and can control data transfers directly into and out of the computer system memory for use by processing circuitry on the adapter card. In most cases this processing circuitry is a special purpose microprocessor such as a micro controller or a digital signal processor.
In order for an adapter card to control its exchange data with the system memory, the system bus of the personal computer involved must have direct memory access capability, commonly called "DMA" capability. Operating principles for computer buses with DMA capability are well known in the art, and many types of computer system buses today have DMA capability. For example, FIG. 1 shows a block diagram of an adapter card plugged into to an industry standard architecture (ISA) bus found in many IBM compatible personal computers. A system master controller 103 exchanges "request" and "ack" commands with the host system DMA controller 101 so that data can be exchanged directly between host system memory 102 and card SRAM memory 105 for use by a processor on the adapter card.
While the ISA bus provides sufficient DMA capability for most purposes, a method has been described to provide improved DMA capabilities for the ISA bus in U.S. Pat. No. 4,847,750 to Daniel, which is incorporated herein by reference. Additionally, a way of providing DMA capability to a remote expansion chassis on a type of system bus called an Sbus is described in U.S. Pat. No. 5,335,329 to Cox et al. which is incorporated herein by reference. These and other methods of improving DMA capability in the prior art all depend on the use of a system bus that has some DMA capability.
An adapter card designer is faced with a much greater problem when dealing with a host system bus not designed to support bus master adapter cards because such a host system bus has no DMA capability at all. An example of such a bus is the Personal Computer Memory Card International Association bus, commonly called the PCMCIA bus. The PCMCIA bus is popular for use in laptop and notebook personal computers because it requires very little space. However, the bus provides no DMA capability at all, and therefore bus master cards are not supported. This lack of capability makes designing adapter cards difficult. Not only must a card be designed to work with no DMA, but also a different electrical design and different software driver must be developed for PCMCIA and ISA versions of the same adapter card. What is needed is a way to simulate DMA at an adapter card interface. If this could be done, "virtual DMA" capability could be provided so that the adapter card processor works the same way on a PCMCIA adapter card as on an ISA adapter card, simplifying the design and allowing the same software driver to be used for both types of cards. Such a scheme would not only be very useful for PCMCIA adapter cards, but would also be useful in adapter cards designed for other buses which do not provide DMA capability.